package set_;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

/**
 * @author DCSGO
 * @version 1.0
 * Set常用方法
 * 通过实现类HashSet举例
 */
public class SetMethod {
    @SuppressWarnings({"all"})
    public static void main(String[] args) {
        //Set 不同于 List 它不能存放相同元素(包括null)
        //Set 是无序存放元素的 即存放顺序与添加顺序不一定相同

        Set set = new HashSet();
        set.add("CS1.6");
        set.add("CSS");
        set.add("CSGO");
        set.add("CS2");
        set.add(null);
        set.add(null);
        System.out.println(set);
        //[null, CSS, CS2, CSGO, CS1.6]

        //遍历方式 迭代器 和 foreach
        //由于没有了 get 方法故不再支持普通 for 遍历

        //1.迭代器
        Iterator iterator = set.iterator();
        while (iterator.hasNext()) {
            Object next = iterator.next();
            System.out.print(next + " ");
        }//null CSS CS2 CSGO CS1.6

        System.out.println();
        //2.foreach
        for (Object o : set) {
            System.out.print(o + " ");
        }//null CSS CS2 CSGO CS1.6

        System.out.println();
        //与List不同之处还有 remove 不再支持索引删除
        set.remove(null);
        System.out.println(set);
        //[CSS, CS2, CSGO, CS1.6]
    }
}
